package com.sina.shop.event;

import org.springframework.context.ApplicationEvent;

/**
 * 项目中所有事件的基类,可设置同步还是异步事件a
 * <p>
 * 这个事件必须配置 {@link SinaApplicationEventMulticaster} 使用
 * </p>
 * created  on 30/10/2017.
 *
 * @see SinaApplicationEventMulticaster
 */
public abstract class SinaEvent extends ApplicationEvent {


    /**
     * 若改变此类的 属性方法等，请生成新的 serialVersionUID
     */
    private static final long serialVersionUID = -5204703634060691007L;

    private final boolean sync;

    /**
     * @param sync true 强制事件同步派发
     */
    public SinaEvent(Object source, boolean sync) {
        super( source );
        this.sync = sync;
    }

    /**
     * @return true 表示强制 同步派发
     */
    public boolean isSync() {
        return sync;
    }
}
